home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FishMarket 1.0
/
FishMarket v1.0.iso
/
fishies
/
551-575
/
disk_562
/
intuisup
/
borders
/
source.lzh
/
borders_test.c
next >
Wrap
C/C++ Source or Header
|
1991-10-20
|
4KB
|
149 lines
/*************************************
* *
* Borders v2.0 *
* by Torsten Jürgeleit in 05/91 *
* *
* Test program *
* *
*************************************/
/* Includes */
#include <exec/types.h>
#include <graphics/gfxbase.h>
#include <intuition/intuitionbase.h>
#include <intuition/intuition.h>
#include <functions.h>
#include "/render/render.h"
#include "borders.h"
/* Defines */
#define WINDOW_WIDTH 600
#define WINDOW_HEIGHT 200
#define WINDOW_TITLE (UBYTE *)" Borders test "
#define RENDER_INFO_FLAGS (USHORT)(RENDER_INFO_FLAG_INNER_WINDOW | RENDER_INFO_FLAG_BACK_FILL)
#define OPEN_WINDOW_FLAGS (USHORT)(OPEN_WINDOW_FLAG_CENTER_WINDOW | OPEN_WINDOW_FLAG_RENDER_PENS)
/* Globals */
struct IntuitionBase *IntuitionBase;
struct GfxBase *GfxBase;
/* Statics */
STATIC struct NewWindow test_new_window = { 0, 0, WINDOW_WIDTH,
WINDOW_HEIGHT, 0, 0, CLOSEWINDOW, WINDOWCLOSE | WINDOWDRAG | WINDOWDEPTH |
SMART_REFRESH | NOCAREREFRESH | RMBTRAP | ACTIVATE, NULL, NULL,
WINDOW_TITLE, NULL, NULL, 0, 0, 0, 0, WBENCHSCREEN };
/* Defines for test borders */
#define TEST_BORDER1_TYPE BORDER_DATA_TYPE_BOX1_IN
#define TEST_BORDER1_LEFT_EDGE ((WINDOW_WIDTH - TEST_BORDER1_WIDTH) / 2)
#define TEST_BORDER1_TOP_EDGE 20
#define TEST_BORDER1_WIDTH (WINDOW_WIDTH / 2)
#define TEST_BORDER1_HEIGHT (WINDOW_HEIGHT - 2 * TEST_BORDER1_TOP_EDGE)
#define TEST_BORDER2_TYPE BORDER_DATA_TYPE_BOX2_IN
#define TEST_BORDER2_LEFT_EDGE ((WINDOW_WIDTH - TEST_BORDER2_WIDTH) / 2)
#define TEST_BORDER2_TOP_EDGE 40
#define TEST_BORDER2_WIDTH (WINDOW_WIDTH / 3)
#define TEST_BORDER2_HEIGHT (WINDOW_HEIGHT - 2 * TEST_BORDER2_TOP_EDGE)
#define TEST_BORDER3_TYPE BORDER_DATA_TYPE_BOX1_OUT
#define TEST_BORDER3_LEFT_EDGE ((WINDOW_WIDTH - TEST_BORDER3_WIDTH) / 2)
#define TEST_BORDER3_TOP_EDGE 60
#define TEST_BORDER3_WIDTH (WINDOW_WIDTH / 4)
#define TEST_BORDER3_HEIGHT (WINDOW_HEIGHT - 2 * TEST_BORDER3_TOP_EDGE)
#define TEST_BORDER4_TYPE BORDER_DATA_TYPE_BOX2_OUT
#define TEST_BORDER4_LEFT_EDGE ((WINDOW_WIDTH - TEST_BORDER4_WIDTH) / 2)
#define TEST_BORDER4_TOP_EDGE 80
#define TEST_BORDER4_WIDTH (WINDOW_WIDTH / 8)
#define TEST_BORDER4_HEIGHT (WINDOW_HEIGHT - 2 * TEST_BORDER4_TOP_EDGE)
/* Statics for test borders */
STATIC struct BorderData test_border_data[] = {
{
TEST_BORDER1_TYPE, /* bd_Type */
TEST_BORDER1_LEFT_EDGE, /* bd_LeftEdge */
TEST_BORDER1_TOP_EDGE, /* bd_TopEdge */
TEST_BORDER1_WIDTH, /* bd_Width */
TEST_BORDER1_HEIGHT /* bd_Height */
}, {
TEST_BORDER2_TYPE, /* bd_Type */
TEST_BORDER2_LEFT_EDGE, /* bd_LeftEdge */
TEST_BORDER2_TOP_EDGE, /* bd_TopEdge */
TEST_BORDER2_WIDTH, /* bd_Width */
TEST_BORDER2_HEIGHT /* bd_Height */
}, {
TEST_BORDER3_TYPE, /* bd_Type */
TEST_BORDER3_LEFT_EDGE, /* bd_LeftEdge */
TEST_BORDER3_TOP_EDGE, /* bd_TopEdge */
TEST_BORDER3_WIDTH, /* bd_Width */
TEST_BORDER3_HEIGHT /* bd_Height */
}, {
TEST_BORDER4_TYPE, /* bd_Type */
TEST_BORDER4_LEFT_EDGE, /* bd_LeftEdge */
TEST_BORDER4_TOP_EDGE, /* bd_TopEdge */
TEST_BORDER4_WIDTH, /* bd_Width */
TEST_BORDER4_HEIGHT /* bd_Height */
}, {
INTUISUP_DATA_END /* mark end of border data array */
}
};
/* Prototypes */
VOID test_action(struct RenderInfo *ri, struct Window *win);
/* Pragmas */
#pragma regcall(test_action(a0,a1))
/* Borders test */
LONG
main(VOID)
{
struct RenderInfo *ri;
struct Window *win;
if (IntuitionBase = OpenLibrary("intuition.library", 0L)) {
if (GfxBase = OpenLibrary("graphics.library", 0L)) {
if (ri = get_render_info(NULL, RENDER_INFO_FLAGS)) {
if (win = open_window(ri, &test_new_window, OPEN_WINDOW_FLAGS)) {
test_action(ri, win);
CloseWindow(win);
}
free_render_info(ri);
}
CloseLibrary(GfxBase);
}
CloseLibrary(IntuitionBase);
}
return(0L);
}
/* Perform IDCMP action */
VOID
test_action(struct RenderInfo *ri, struct Window *win)
{
struct MsgPort *up = win->UserPort;
struct IntuiMessage *msg;
BOOL keepon = TRUE;
display_borders(ri, win, &test_border_data[0], -0, -0);
do {
WaitPort(up);
while (msg = (struct IntuiMessage *)GetMsg(up)) {
if (msg->Class == CLOSEWINDOW) {
keepon = FALSE;
}
ReplyMsg((struct Message *)msg);
}
} while (keepon == TRUE);
}